void SelectSort(vector<int> &arr1, int length)
{
	//选择排序的工作原理是每次从未排序的序列中找到最小（或最大）的元素，存放到排序序列的起始位置，
	//然后再从剩余未排序的元素中继续寻找最小（大）元素，然后放到已排序序列的末尾。以此类推，直到所有元素均排序完毕。
	//和冒泡排序比较，选择是放到开头，交换的次数更少
	SimplePrint(arr1, length, "原始数据：");
	//开始排序
	//选择是选一个最大或者最小的元素出来，一个整个for结束后再交换
	for (int i = 0; i < length - 1; i++)
	{
		int index = i;
		//一轮结束后，arr1最后的位置必定存的是当前最大的值。
		for (int j = i+1; j < length; j++)// 这里边界值为length，因为length-1需要被遍历到
		{
			if (arr1[j] < arr1[index])
			{
				index = j;
			}
		}

		//循环结束再交换
		int tmp = arr1[i];
		arr1[i] = arr1[index];
		arr1[index] = tmp;
	}
	//结束排序

	SimplePrint(arr1, length, "排序后的数据：");
	return;

}

int main()
{

	vector<int> arr = {4,32,-2,45,6,10,32,100,10};
	//简单排序，双循环遍历
	//SimpleSort(arr,arr.size());
	//BublingSort(arr, arr.size());
	SelectSort(arr, arr.size());
	//QuickSort();
	return 0;
}